package com.newgrand.config;

import java.security.Key;

import javax.crypto.Cipher;

public class EncryptKey {
	public static void main(String[] args) throws Exception {
		String key="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAweFL+H9xLffhV1XbgoWcVjW5TmgqDM/K6JgoF9ucU8S5Oz2R/F8Pwm0PvpmletbABDPs+P1zy1B0jO4ksP5Yz3ogGKP+FOpqO/H/I8HtZMFIN8eYtARINqcTNj7/ojqmdyyfXibFUaF4s4FYtEAgaEBRDMdilFe4Hit80M4dGMJvcS2XtFVsBqlW1CzYWejU7E1EqyrpL5y87IoA99Oe4b3UwsYTLpTN4HVtLsfn3fsExEqxj6zchgT1oqb7S6UDKxKv3hhgnjxX4xOLazlHueP8Ger+4gVa9hOTZmq0Mfijg4wQkVrd4LWUsZqHG5XElW9u+yjx8jgyvol+0dSl/wIDAQAB"+"20221102";
		EncryptKey des = new EncryptKey(key);// ʹ��Ĭ����Կ
		//�����˺Ž��м���
		String password="Hz."+"010200014723";
		System.out.println("����ǰ���ַ���" + password);
		System.out.println("���ܺ���ַ���" + des.encrypt(String.valueOf(password)));
}

	/** ���ܹ��� */

	private Cipher encryptCipher = null;
	/**

	 * ָ����Կ���췽��

	 * @param strKey ָ������Կ

	 * @throws Exception

	 */

	public EncryptKey(String strKey) throws Exception {

		// Security.addProvider(new com.sun.crypto.provider.SunJCE());

		Key key = getKey(strKey.getBytes());

		encryptCipher = Cipher.getInstance("DES");

		encryptCipher.init(Cipher.ENCRYPT_MODE, key);


	}
	/**

	 * ��ָ���ַ���������Կ����Կ������ֽ����鳤��Ϊ8λ ����8λʱ���油0������8λֻȡǰ8λ

	 * @param arrBTmp ���ɸ��ַ������ֽ�����

	 * @return ���ɵ���Կ

	 */
	private Key getKey(byte[] arrBTmp) throws Exception {
		// ����һ���յ�8λ�ֽ�����(Ĭ��ֵΪ0)
		byte[] arrB = new byte[8];
		// ��ԭʼ�ֽ�����ת��Ϊ8λ
		for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {
			arrB[i] = arrBTmp[i];
		}
		// ������Կ
		Key key = new javax.crypto.spec.SecretKeySpec(arrB, "DES");
		return key;

	}
	/**

	 * �����ֽ�����

	 * @param arrB ����ܵ��ֽ�����

	 * @return ���ܺ���ֽ�����

	 */

	public byte[] encrypt(byte[] arrB) throws Exception {
		return encryptCipher.doFinal(arrB);
	}
	/**

	 * ��byte����ת��Ϊ��ʾ16����ֵ���ַ����� �磺byte[]{8,18}ת��Ϊ��0813�� ��public static byte[]

	 * hexStr2ByteArr(String strIn) ��Ϊ�����ת������

	 * @param arrB ��Ҫת����byte����

	 * @return ת������ַ���

	 * @throws Exception �������������κ��쳣�������쳣ȫ���׳�

	 */

	public static String byteArr2HexStr(byte[] arrB) throws Exception {

		int iLen = arrB.length;

		// ÿ��byte�������ַ����ܱ�ʾ�������ַ����ĳ��������鳤�ȵ�����

		StringBuffer sb = new StringBuffer(iLen * 2);

		for (int i = 0; i < iLen; i++) {

			int intTmp = arrB[i];

			// �Ѹ���ת��Ϊ����

			while (intTmp < 0) {

				intTmp = intTmp + 256;

			}

			// С��0F������Ҫ��ǰ�油0

			if (intTmp < 16) {
				sb.append("0");
			}
			sb.append(Integer.toString(intTmp, 16));
		}
		return sb.toString();
	}
	/**

	 * �����ַ���

	 * @param strIn ����ܵ��ַ���

	 * @return ���ܺ���ַ���

	 */

	public String encrypt(String strIn) throws Exception {
		return byteArr2HexStr(encrypt(strIn.getBytes()));
	}
}
